Skip to content

feat: design doc for kona prestate native build#372

Open
ajsutton wants to merge 1 commit intomainfrom
aj/feat/kona-prestate-native-build
Open

feat: design doc for kona prestate native build#372
ajsutton wants to merge 1 commit intomainfrom
aj/feat/kona-prestate-native-build

Conversation

@ajsutton
Copy link
Copy Markdown
Contributor

@ajsutton ajsutton commented Apr 2, 2026

Summary

  • Design doc for refactoring the kona prestate build to support both native (non-Docker) and reproducible Docker paths from a single definition
  • Extracts build logic from Dockerfile stages into just targets in rust/justfile
  • Reduces cannon-builder Docker image to apt packages only; tools installed via mise from shared mise.toml
  • Follows the proven pattern from op-program/Dockerfile.repro + op-program/repro.justfile

Test plan

  • Review design doc for completeness and accuracy
  • Validate proposed architecture against current kona prestate build
  • Confirm CI impact analysis covers all affected jobs

🤖 Generated with Claude Code

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
ajsutton added a commit to ethereum-optimism/optimism that referenced this pull request Apr 23, 2026
… paths

Extract kona prestate build logic from Docker multi-stage builds into `just`
targets in `rust/justfile`, enabling native (non-Docker) prestate builds for
local development while preserving reproducible Docker builds for releases.

- `cd rust && just build-kona-prestates` — native build on Linux with MIPS64
  cross-toolchain installed
- `just reproducible-prestate-kona` — Docker build, produces identical hashes
- Dockerfile becomes a thin environment wrapper using mise for tool versions;
  cannon binary built as an in-Dockerfile stage
- `lint-cannon` and `build-cannon-client` use the reproducible build Docker
  environment via `just` targets
- Design doc: ethereum-optimism/design-docs#372

Stacked on #20253 (cannon-builder apt-only refactor).
The stopgap in cannon-repro.dockerfile rebuilds the cannon-builder base image
inline; once cannon-builder:v2.0.0 is published post-#20253 merge, that stage
collapses to `FROM cannon-builder:v2.0.0 AS kona-build-env`.
ajsutton added a commit to ethereum-optimism/optimism that referenced this pull request Apr 23, 2026
… paths

Extract kona prestate build logic from Docker multi-stage builds into `just`
targets in `rust/justfile`, enabling native (non-Docker) prestate builds for
local development while preserving reproducible Docker builds for releases.

- `cd rust && just build-kona-prestates` — native build on Linux with MIPS64
  cross-toolchain installed
- `just reproducible-prestate-kona` — Docker build, produces identical hashes
- Dockerfile becomes a thin environment wrapper using mise for tool versions;
  cannon binary built as an in-Dockerfile stage
- `lint-cannon` and `build-cannon-client` use the reproducible build Docker
  environment via `just` targets
- Design doc: ethereum-optimism/design-docs#372

Stacked on #20253 (cannon-builder apt-only refactor).
The stopgap in cannon-repro.dockerfile rebuilds the cannon-builder base image
inline; once cannon-builder:v2.0.0 is published post-#20253 merge, that stage
collapses to `FROM cannon-builder:v2.0.0 AS kona-build-env`.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant